Trong Ruby, mã nguồn không chỉ là một tập tin tĩnh—nó là một hệ thống sống động. Sự tự nhận thức là sức mạnh siêu việt giúp các đối tượng sở hữu 'kiến thức về bản thân', biến chúng từ những hộp đen thành bản đồ tìm kiếm chức năng. Ngay cả các giá trị trực tiếp như số nguyên cũng có thể được kiểm tra về dòng dõi và khả năng tại thời điểm chạy chương trình.
1. Giao diện sống động
Bằng cách gọi obj.methods(regular=true), ta truy cập toàn bộ từ vựng chức năng của đối tượng. Một đối tượng Range đơn giản (r = 1..10) cho thấy một con số đáng kinh ngạc là 68 phương thức khác nhau, phản ánh sự kế thừa phong phú từ Object và Enumerable tính kế thừa.
2. Phát hiện động
Phương thức respond_to? chức năng hoạt động như người giữ cửa tại thời điểm chạy, cho phép Kiểu chim vịt. Thay vì hỏi 'Bạn là gì?', ta hỏi 'Bạn có thể làm điều này không?'. Sự linh hoạt này cho phép chương trình thích nghi dựa trên khả năng thực tế, chẳng hạn như kiểm tra xem một chuỗi có phản hồi với các ký hiệu giống như gán giá trị (=) hay một giá trị số có hỗ trợ một yêu cầu cụ thể về Truy vấn cấp bậc.
3. Cầu nối giữa tài liệu siêu cấp
Các công cụ như RDoc sử dụng các tính năng này để tạo ra các bố cục danh sách theo thứ tự bảng chữ cái và sơ đồ ký hiệu phương thức một cách tự động. Bằng cách truy vấn hằng số module và Biến thể hiện, các nhà phát triển có thể duyệt cấu trúc không gian tên toàn bộ một cách lập trình, khép kín khoảng cách giữa các tệp nguồn và quá trình thực thi đang hoạt động.